Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 025b948f0b6d666ce1063cbf6ff1a22117832614


Parents : fe4bf21
Author : Ivan <ivan@quad4.io>
Signature : Invalid signer <e46112d44649266d71fe2193e00a4710>, author is <ivan@quad4.io>
Date : 2026-07-04T17:01:07-05:00

feat(github-actions): add backend tests to CI workflow and adjust timeouts for linting and frontend tests

Changes

2 files changed, 32 insertions(+), 10 deletions(-)


Diff

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2dec3718..0d4f7858 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -58,13 +58,10 @@ jobs:
task:
- name: Lint
id: lint
- timeout: 35
+ timeout: 45
- name: Frontend tests
id: frontend-tests
timeout: 45
- - name: Backend tests
- id: backend-tests
- timeout: 60
- name: Localization tests
id: lang-tests
timeout: 20
@@ -87,17 +84,16 @@ jobs:
case "${{ matrix.task.id }}" in
lint)
pnpm run lint
+ pnpm run typecheck
+ pnpm exec knip
uv run ruff check .
uv run ruff format --check .
+ uv run basedpyright -p pyrightconfig.json --level error
;;
frontend-tests)
pnpm exec vitest run --exclude tests/frontend/LoadTimePerformance.test.js --exclude tests/frontend/i18n.test.js
pnpm exec vitest run --config vitest.electron.config.js
;;
- backend-tests)
- MESHCHAT_SKIP_STORAGE_LOCK=1 uv run python -m pytest tests/backend \
- --cov=meshchatx/src/backend
- ;;
lang-tests)
pnpm exec vitest run tests/frontend/i18n.test.js
uv run python -m pytest tests/backend/test_translator_handler.py
@@ -108,6 +104,33 @@ jobs:
;;
esac
+ backend-tests:
+ name: Backend tests (Python ${{ matrix.python-version }})
+ runs-on: ubuntu-latest
+ timeout-minutes: 60
+ permissions:
+ contents: read
+ strategy:
+ fail-fast: false
+ matrix:
+ python-version: ["3.11", "3.14"]
+ steps:
+ - name: Checkout
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
+
+ - name: Set up development environment
+ uses: ./.github/actions/setup-dev-environment
+ with:
+ python-version: ${{ matrix.python-version }}
+ uv-version: ${{ env.UV_VERSION }}
+ node-version: ${{ env.NODE_VERSION }}
+ pnpm-version: ${{ env.PNPM_VERSION }}
+
+ - name: Run backend tests
+ run: |
+ MESHCHAT_SKIP_STORAGE_LOCK=1 uv run python -m pytest tests/backend \
+ --cov=meshchatx/src/backend
+
build-check:
name: Linux build check
runs-on: ubuntu-latest

diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index c61f5c23..dff1f790 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -1,6 +1,6 @@
# Build multi-arch image, push to GHCR, and keyless-sign the manifest (Cosign).
# Optionally also push to Docker Hub when credentials are configured (fork-friendly).
-# Runs on push to main/master (tags :latest and :sha-*), dev (tags :dev and :sha-*),
+# Runs on push to master (tags :latest and :sha-*), dev (tags :dev and :sha-*),
# tags (semver tags + :latest), and workflow_dispatch.
#
# Optional Docker Hub (same tag set as GHCR):
@@ -32,7 +32,6 @@ on:
workflow_dispatch:
push:
branches:
- - main
- master
- dev
tags:


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────